\chapter{高级语言及其语法描述}

\section{程序语言的定义}

    程序语言主要由\textsf{语法}和\textsf{语义}两个方面来定义, 有时也包括\textsf{语用}信息.

    \subsection{语法}

        \textsf{词法规则}指token的形成规则, \textsf{语法规则}规定了如何从token形成更大的结构, 也就是语法单位的形成规则.        

    \subsection{语义}

        \textsf{语义}是token和语法单位的意义. 

\section{高级语言的一般特性}

    比较通用的概念有子程序(可嵌套: pascal; 禁止嵌套: Fortran), 简单变量和复杂变量, 变量的作用域, 数据类型的属性和操作, 数组.

    语句分为\textsf{说明性语句}和\textsf{执行性语句}. 我们研究一些通用的语句的实现, 包括赋值语句, 控制语句(无条件转移, 条件判断, 条件循环, 过程调用, 返回)

    \textsf{数组的内情向量}: 描述数组的信息, 包括维数, 各维上下限, 首地址, 数组元素类型等.

\section{程序语言的语法描述}

    设$\Sigma$是一个有穷的\textsf{字母表}, 它的每个元素称为\textsf{符号}. 不包含符号的序列称为\textsf{空字}, 记为$\varepsilon$. $\Sigma^*$代表$\Sigma$上所有符号串的全体. $\phi$表示不包含任何元素的空集.
